#ifndef DATA_COMMAND_H
#define DATA_COMMAND_H

#include "Data/Objects/CommandType.h"

namespace data {

	struct Command {
	public:
		Command( int key, CommandType type ) :
			m_key( key ),
			m_type( type )
		{}

		Command( const Command& command ) :
			m_key( command.GetKey() ),
			m_type( command.GetType() )
		{}

		inline int GetKey() const { return m_key; }
		inline void SetKey( int key ) { m_key = key; }

		inline CommandType GetType() const { return m_type; }
		inline void SetType( CommandType type ) { m_type = type; }

	private:
		int m_key;
		CommandType m_type;
	};

	inline bool operator == ( const Command& a, const Command& b ) {
		if( a.GetKey() != b.GetKey() ) return false;
		if( a.GetType() != b.GetType() ) return false;
		return true;
	}

	inline bool operator != ( const Command& a, const Command& b ) {
		return !( a == b );
	}
}
#endif
